package com.i72.governance.service.helper;

import com.i72.governance.service.bean.ServiceInfo;
import com.i72.governance.service.bean.ServiceNode;

import java.util.List;

public interface ServiceHelper {

    /**
     * 初始化服务订阅
     */
    void initService();



    /**
     * 订阅服务，被订阅的服务会默认监听
     * @param serviceNameList
     */
    void subscribeService(List<String> serviceNameList);

    /**
     * 订阅当前服务中心所有的服务,被订阅的服务会默认监听
     */
    void subscribeAll();

    /**
     * 添加服务/注册服务
     * @param serviceInfo
     * @return
     */
    boolean addServiceInfo(ServiceInfo serviceInfo);

    /**
     * 获取所有服务
     * @return
     */
    List<ServiceInfo> getAllServiceInfo();

    /**
     * 根据服务获取服务节点信息
     * @param serviceName
     * @return
     */
    ServiceInfo getServiceInfo(String serviceName);

    /**
     * 拉取服务的节点信息(实时)
     * @return
     */
    List<ServiceNode> pullServiceNode(String serviceName);

    /**
     * 拉取所有服务(实时)
     * @return
     */
    List<String> pullAllService();
}
